de.cebis.moccabox.application.impl.hibernate
Class AbstractStandardBusinessTask

java.lang.Object
  extended by de.cebis.moccabox.application.impl.hibernate.AbstractStandardBusinessTask
All Implemented Interfaces:
IBusinessTask
Direct Known Subclasses:
CreateTask, DeleteTask, RetrieveTask, SingleConceptCollectTask, UpdateTask

public abstract class AbstractStandardBusinessTask
extends java.lang.Object
implements IBusinessTask

Der AbstractStandardBusinessTask implementiert die grundlegenden Methoden des IBusinessTask. Er besitzt einen internen Speicher, in dem das Aufgabenobjekt des Vorgangs gespeichert wird.

Der AbstractStandardBusinessTask wird in mehreren Schritten ausgeführt (perform()). Nach Instantiierung wird das Aufgabenobjekt ausgelesen oder erzeugt (retrieveTaskPerformanceModel()). Anschließend werden die Änderungen einer Nutzereingabe oder der Aufgabendurchführung selbst in das Aufgabenobjekt geschrieben (performStateModification()) und das Aufgabenobjekt wird in der Datenbasis angelegt bzw. zurückgeschrieben (saveTaskPerformanceModel()). Nach Ausführung des Vorgangs, wird der Zustand der Durchführung bekannt gegeben (notifyStateModification()).

Author:
weichelt - 17.01.2005

Field Summary
static java.lang.String SAVE
          Parameter der angibt, dass die Änderungen direkt gespeichert werden sollen, ohne dass zurückgefragt werden muss.
 
Fields inherited from interface de.cebis.moccabox.application.task.IBusinessTask
RESULT_CONCEPT, RESULT_CRITERION, STATE_FAILED, STATE_FINISHED_INCOMPLETE, STATE_FINISHED_WITH_ERRORS, STATE_FINISHED_WITH_SUCCESS, STATE_INPUT, STATE_INSTANTIATED, STATE_WAITING_FOR_CONFIRMATION
 
Constructor Summary
AbstractStandardBusinessTask()
          Parameterloser Konstruktor zur Erzeugung eines neuen AbstractStandardBusinessTask.
 
Method Summary
protected  void addConcept(java.lang.String name, java.lang.Object c)
          Hinzufügen eines Konzeptes zum Aufgabenobjektes der Instanz des Vorgangs.
protected  void addRestrictionsToCriteria(ConceptBean c, ITaskContext tContext, org.hibernate.Criteria cCriteria)
          Fügt der übergebenen Criteria Klasse die entsprechenden Criterion Einträge aus dem TaskRequest hinzu (run-time).
protected  AttributeStore getAttributeStore()
          Der interne Speicher des BusinessTask, in dem das Aufgabenobjekt transient abgelegt wird und auf den während des Lebenszyklus des Vorgangsobjektes zugegriffen wird.
 StandardBusinessTaskBean getBusinessTaskBean()
          Zurückliefern des StandardBusinessTaskBean, das die Instanz des IBusinessTask parametrisiert.
protected  ConceptBuilder getConceptBuilder()
          Liefert den verfügbaren ConceptBuilder zurück, der aus den Parametern eines übergebenen Request das korrespondierende Konzept befüllt.
 ConceptBean[] getConcepts()
          Zurückliefern der zu Grunde liegenden Konzepte, die das Aufgabenobjekt des Vorgangs bilden.
 org.hibernate.criterion.Criterion getCriterion(CriterionBean criterion, ITaskContext tContext)
          Liefert das entsprechende Hibernate Criterion zurück für den aktuellen ITaskRequest
 java.lang.String getState()
          Zurückliefern des aktuellen Zustands des Vorgangs.
 void init()
          Initialisieren des IBusinessTask.
protected abstract  StandardBusinessTaskResult notifyState(ITaskContext tContext)
          Bekanntgeben des aktuellen Status des IBusinessTask.
 IBusinessTaskResult perform(ITaskContext tContext)
          Ausführen des Vorgangs.
protected abstract  void performStateModification(ITaskContext tContext)
          Durchführen der Änderungen auf dem Aufgabenobjekt.
protected abstract  void retrieveTaskPerformanceModel(ITaskContext tContext)
          Auslesen des Aufgabenobjektes aus der Datenbasis.
protected abstract  void saveTaskPerformanceModel(ITaskContext tContext)
          Zurückschreiben der durchgeführten Änderungen in die Datenbasis.
 void setBusinessTaskBean(BusinessTaskBean bean)
          Setzen des BusinessTaskBean, das die Instanz des IBusinessTask parametrisiert.
protected  void setState(java.lang.String state)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SAVE

public static java.lang.String SAVE
Parameter der angibt, dass die Änderungen direkt gespeichert werden sollen, ohne dass zurückgefragt werden muss. Beim Speichern der Eingaben eines Formulars wird dieser Parameter automatisch übergeben. Wird er beim ersten Aufruf eines IBusinessTask mit übergeben, so wird der Anwender nicht zurückgefragt, sondern der Vorgang direkt mit den übergebenen Parametern bis zur Persistierung des Aufgabenobjektes durchgeführt.

Constructor Detail

AbstractStandardBusinessTask

public AbstractStandardBusinessTask()
Parameterloser Konstruktor zur Erzeugung eines neuen AbstractStandardBusinessTask.

Method Detail

perform

public IBusinessTaskResult perform(ITaskContext tContext)
                            throws BusinessTaskPerformanceException
Description copied from interface: IBusinessTask
Ausführen des Vorgangs. Der übergebene ITaskContext enthält alle Informationen, die für die Durchführung des Vorgangs notwendig sind. Als Ergebnis wird ein IBusinessTaskResult zurückgeliefert, das auch den Zustand des Vorgangs kapselt. Das Ergebnis stellt das Nachereignis der Vorgangsdurchführung dar. Die Ausführung kann für das Einholen von Anwendereingaben oder zurückliefern von Zwischenmeldungen unterbrochen und später wieder aufgenommen werden.

Specified by:
perform in interface IBusinessTask
Parameters:
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
Returns:
Ergebnis (Nachereignis) der Durchführung des Vorgangs.
Throws:
BusinessTaskPerformanceException - Wird geworfen, wenn ein Fehler bei der Durchführung des Vorgangs aufgetreten ist.

retrieveTaskPerformanceModel

protected abstract void retrieveTaskPerformanceModel(ITaskContext tContext)
Auslesen des Aufgabenobjektes aus der Datenbasis. Muss vom jeweiligen BusinessTask implementiert werden.

Parameters:
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.

performStateModification

protected abstract void performStateModification(ITaskContext tContext)
                                          throws InvalidTransactionException,
                                                 InvalidTaskPerformanceModelException
Durchführen der Änderungen auf dem Aufgabenobjekt. Muss vom jeweiligen BusinessTask implementiert werden.

Parameters:
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
Throws:
InvalidTransactionException - Fehler, weil invalide Transaktion übergeben wurde und der Zugriff auf die Datenbasis nicht möglich war.
InvalidTaskPerformanceModelException - Fehler, weil kein Aufgabenobjekt vorhanden ist, auf dem die Änderungen ausgeführt werden können.

saveTaskPerformanceModel

protected abstract void saveTaskPerformanceModel(ITaskContext tContext)
                                          throws InvalidTransactionException,
                                                 InvalidTaskPerformanceModelException
Zurückschreiben der durchgeführten Änderungen in die Datenbasis. Muss vom jeweiligen BusinessTask implementiert werden.

Parameters:
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
Throws:
InvalidTransactionException - Fehler, weil invalide Transaktion übergeben wurde und der Zugriff auf die Datenbasis nicht möglich war.
InvalidTaskPerformanceModelException - Fehler, weil kein Aufgabenobjekt vorhanden ist, das in die Datenbasis zurückgeschrieben werden kann.

notifyState

protected abstract StandardBusinessTaskResult notifyState(ITaskContext tContext)
Bekanntgeben des aktuellen Status des IBusinessTask.

Parameters:
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
Returns:
Zustand des Vorgangs.
STATE_INSTANTIATED
STATE_INPUT
STATE_FINISHED_WITH_ERRORS
STATE_FINISHED_WITH_SUCCESS
STATE_FINISHED_INCOMPLETE
STATE_FAILED
STATE_WAITING_FOR_CONFIRMATION

setState

protected void setState(java.lang.String state)

getState

public java.lang.String getState()
Description copied from interface: IBusinessTask
Zurückliefern des aktuellen Zustands des Vorgangs. Je nachdem, welchen State der Vorgang eingenommen hat, gilt er als unterbrochen, erfolgreich beendet oder mit Fehler abgebrochen.

Specified by:
getState in interface IBusinessTask
Returns:
Zustand des Vorgangs.
STATE_INSTANTIATED
STATE_INPUT
STATE_FINISHED_WITH_ERRORS
STATE_FINISHED_WITH_SUCCESS
STATE_FINISHED_INCOMPLETE
STATE_FAILED
STATE_WAITING_FOR_CONFIRMATION

addRestrictionsToCriteria

protected void addRestrictionsToCriteria(ConceptBean c,
                                         ITaskContext tContext,
                                         org.hibernate.Criteria cCriteria)
                                  throws InvalidParameterException
Fügt der übergebenen Criteria Klasse die entsprechenden Criterion Einträge aus dem TaskRequest hinzu (run-time). Zusätzlich werden die Criteria des ConceptBean ausgewertet, die beim Konfigurieren des BusinessTask hinterlegt wurden (build-time).

Parameters:
c - ConceptBean, das Informationen über das als Aufgabenobjekt zu Grunde liegende Konzept und dessen Bezeichner enthält.
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
cCriteria - Die Criteria, der die weiteren Restriktionen hinzugefügt werden sollen.
Throws:
InvalidParameterException

getCriterion

public org.hibernate.criterion.Criterion getCriterion(CriterionBean criterion,
                                                      ITaskContext tContext)
                                               throws InvalidParameterException
Liefert das entsprechende Hibernate Criterion zurück für den aktuellen ITaskRequest

Parameters:
criterion - Die Criteria, der die weiteren Restriktionen hinzugefügt werden sollen.
tContext - Der aktuelle ITaskContext, in dem der Vorgang (IBusinessTask) ausgeführt wurde.
Returns:
Das korrespondierende Hibernate-Criterion für die angegebenen Restriktionen, die durch das CriterionBean für das Vorgangsobjekt definiert wurden.
Throws:
InvalidParameterException

getConceptBuilder

protected ConceptBuilder getConceptBuilder()
Liefert den verfügbaren ConceptBuilder zurück, der aus den Parametern eines übergebenen Request das korrespondierende Konzept befüllt.

Returns:
Der verfügbare ConceptBuilder.

getConcepts

public ConceptBean[] getConcepts()
Zurückliefern der zu Grunde liegenden Konzepte, die das Aufgabenobjekt des Vorgangs bilden. Die Informationen der Konzepte sind in ConceptBean- Objekten gekapselt.

Returns:
Die Konzepte, die das Aufgabenobjekt abbilden.

getAttributeStore

protected AttributeStore getAttributeStore()
Der interne Speicher des BusinessTask, in dem das Aufgabenobjekt transient abgelegt wird und auf den während des Lebenszyklus des Vorgangsobjektes zugegriffen wird.

Returns:
Das Aufgabenobjekt des Vorgangs.

addConcept

protected void addConcept(java.lang.String name,
                          java.lang.Object c)
Hinzufügen eines Konzeptes zum Aufgabenobjektes der Instanz des Vorgangs.

Parameters:
name - Name, unter dem das Konzept als Teil des Aufgabenobjektes bekannt ist.
c - Das Konzept, das Teil des Aufgabenobjektes ist.

setBusinessTaskBean

public void setBusinessTaskBean(BusinessTaskBean bean)
Description copied from interface: IBusinessTask
Setzen des BusinessTaskBean, das die Instanz des IBusinessTask parametrisiert.

Specified by:
setBusinessTaskBean in interface IBusinessTask
Parameters:
bean - Parametrisierung des IBusinessTask.

getBusinessTaskBean

public StandardBusinessTaskBean getBusinessTaskBean()
Zurückliefern des StandardBusinessTaskBean, das die Instanz des IBusinessTask parametrisiert.

Specified by:
getBusinessTaskBean in interface IBusinessTask
Returns:
Die Standard-Parametrisierungsinformationen des Vorgangs.

init

public void init()
Description copied from interface: IBusinessTask
Initialisieren des IBusinessTask.

Specified by:
init in interface IBusinessTask